mybatis-config xml配置及java解析
xml配置1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37<?xml version="1.0" encoding="UTF-8" ?>
<configuration>
<properties resource="config/generator.properties"/>
<settings>
<setting name="mapUnderscoreToCamelCase" value="true"/>
</settings>
<typeAliases>
<package name="com.yuanwj.mybatisdemo.model"/>
</typeAliases>
<environments default="development">
<environment id="development">
<transactionManager type="JDBC"/>
<dataSource type="POOLED">
<property name="url" value="${jdbc.url}"/>
<property name="username" value="${jdbc.username}"/>
<property name="password" value="${jdbc.password}"/>
<property name="driver" value="${jdbc.driver}"/>
</dataSource>
</environment>
</environments>
<mappers>
<mapper resource="mybatis/mapper/PhoneImeiMapper.xml"/>
</mappers>
</configuration>
java解析核心代码
1 | // 通过配置解析各个节点,每个节点生成XNode,并通过XNode获取其对应的配置属性 |
解析配置文件
mybatis解析核心位于parsing包,如下图
XNode类:每个标签就是一节点
XPathParser: XPath 类的一个包装,主要的逻辑就是该类中实现的。
PropertyParser : 属性解析器
TokenHandler : 占位符解析器,是一个接口,由子类自己实现解析规则
GenericTokenParser : 通用的占位符解析器,用来处理 #{} 和 ${} 参数
通过上述代码可知XNode为解析结果,下面代码分析解析过程及上述各个类作用
1 | //上述代码调用方法 位于XNode |